package com.atguigu.crowd.entity.po;

import java.util.ArrayList;
import java.util.List;

public class HardwareProtocolExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public HardwareProtocolExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andChannelIdIsNull() {
            addCriterion("channel_id is null");
            return (Criteria) this;
        }

        public Criteria andChannelIdIsNotNull() {
            addCriterion("channel_id is not null");
            return (Criteria) this;
        }

        public Criteria andChannelIdEqualTo(Integer value) {
            addCriterion("channel_id =", value, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdNotEqualTo(Integer value) {
            addCriterion("channel_id <>", value, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdGreaterThan(Integer value) {
            addCriterion("channel_id >", value, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("channel_id >=", value, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdLessThan(Integer value) {
            addCriterion("channel_id <", value, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdLessThanOrEqualTo(Integer value) {
            addCriterion("channel_id <=", value, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdIn(List<Integer> values) {
            addCriterion("channel_id in", values, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdNotIn(List<Integer> values) {
            addCriterion("channel_id not in", values, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdBetween(Integer value1, Integer value2) {
            addCriterion("channel_id between", value1, value2, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("channel_id not between", value1, value2, "channelId");
            return (Criteria) this;
        }

        public Criteria andChannelNameIsNull() {
            addCriterion("channel_name is null");
            return (Criteria) this;
        }

        public Criteria andChannelNameIsNotNull() {
            addCriterion("channel_name is not null");
            return (Criteria) this;
        }

        public Criteria andChannelNameEqualTo(String value) {
            addCriterion("channel_name =", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameNotEqualTo(String value) {
            addCriterion("channel_name <>", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameGreaterThan(String value) {
            addCriterion("channel_name >", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameGreaterThanOrEqualTo(String value) {
            addCriterion("channel_name >=", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameLessThan(String value) {
            addCriterion("channel_name <", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameLessThanOrEqualTo(String value) {
            addCriterion("channel_name <=", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameLike(String value) {
            addCriterion("channel_name like", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameNotLike(String value) {
            addCriterion("channel_name not like", value, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameIn(List<String> values) {
            addCriterion("channel_name in", values, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameNotIn(List<String> values) {
            addCriterion("channel_name not in", values, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameBetween(String value1, String value2) {
            addCriterion("channel_name between", value1, value2, "channelName");
            return (Criteria) this;
        }

        public Criteria andChannelNameNotBetween(String value1, String value2) {
            addCriterion("channel_name not between", value1, value2, "channelName");
            return (Criteria) this;
        }

        public Criteria andDataTypeIsNull() {
            addCriterion("data_type is null");
            return (Criteria) this;
        }

        public Criteria andDataTypeIsNotNull() {
            addCriterion("data_type is not null");
            return (Criteria) this;
        }

        public Criteria andDataTypeEqualTo(String value) {
            addCriterion("data_type =", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeNotEqualTo(String value) {
            addCriterion("data_type <>", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeGreaterThan(String value) {
            addCriterion("data_type >", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeGreaterThanOrEqualTo(String value) {
            addCriterion("data_type >=", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeLessThan(String value) {
            addCriterion("data_type <", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeLessThanOrEqualTo(String value) {
            addCriterion("data_type <=", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeLike(String value) {
            addCriterion("data_type like", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeNotLike(String value) {
            addCriterion("data_type not like", value, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeIn(List<String> values) {
            addCriterion("data_type in", values, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeNotIn(List<String> values) {
            addCriterion("data_type not in", values, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeBetween(String value1, String value2) {
            addCriterion("data_type between", value1, value2, "dataType");
            return (Criteria) this;
        }

        public Criteria andDataTypeNotBetween(String value1, String value2) {
            addCriterion("data_type not between", value1, value2, "dataType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeIsNull() {
            addCriterion("message_type is null");
            return (Criteria) this;
        }

        public Criteria andMessageTypeIsNotNull() {
            addCriterion("message_type is not null");
            return (Criteria) this;
        }

        public Criteria andMessageTypeEqualTo(String value) {
            addCriterion("message_type =", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeNotEqualTo(String value) {
            addCriterion("message_type <>", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeGreaterThan(String value) {
            addCriterion("message_type >", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeGreaterThanOrEqualTo(String value) {
            addCriterion("message_type >=", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeLessThan(String value) {
            addCriterion("message_type <", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeLessThanOrEqualTo(String value) {
            addCriterion("message_type <=", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeLike(String value) {
            addCriterion("message_type like", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeNotLike(String value) {
            addCriterion("message_type not like", value, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeIn(List<String> values) {
            addCriterion("message_type in", values, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeNotIn(List<String> values) {
            addCriterion("message_type not in", values, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeBetween(String value1, String value2) {
            addCriterion("message_type between", value1, value2, "messageType");
            return (Criteria) this;
        }

        public Criteria andMessageTypeNotBetween(String value1, String value2) {
            addCriterion("message_type not between", value1, value2, "messageType");
            return (Criteria) this;
        }

        public Criteria andBusTypeIsNull() {
            addCriterion("bus_type is null");
            return (Criteria) this;
        }

        public Criteria andBusTypeIsNotNull() {
            addCriterion("bus_type is not null");
            return (Criteria) this;
        }

        public Criteria andBusTypeEqualTo(String value) {
            addCriterion("bus_type =", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeNotEqualTo(String value) {
            addCriterion("bus_type <>", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeGreaterThan(String value) {
            addCriterion("bus_type >", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeGreaterThanOrEqualTo(String value) {
            addCriterion("bus_type >=", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeLessThan(String value) {
            addCriterion("bus_type <", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeLessThanOrEqualTo(String value) {
            addCriterion("bus_type <=", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeLike(String value) {
            addCriterion("bus_type like", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeNotLike(String value) {
            addCriterion("bus_type not like", value, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeIn(List<String> values) {
            addCriterion("bus_type in", values, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeNotIn(List<String> values) {
            addCriterion("bus_type not in", values, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeBetween(String value1, String value2) {
            addCriterion("bus_type between", value1, value2, "busType");
            return (Criteria) this;
        }

        public Criteria andBusTypeNotBetween(String value1, String value2) {
            addCriterion("bus_type not between", value1, value2, "busType");
            return (Criteria) this;
        }

        public Criteria andRtAddressIsNull() {
            addCriterion("rt_address is null");
            return (Criteria) this;
        }

        public Criteria andRtAddressIsNotNull() {
            addCriterion("rt_address is not null");
            return (Criteria) this;
        }

        public Criteria andRtAddressEqualTo(Integer value) {
            addCriterion("rt_address =", value, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressNotEqualTo(Integer value) {
            addCriterion("rt_address <>", value, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressGreaterThan(Integer value) {
            addCriterion("rt_address >", value, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressGreaterThanOrEqualTo(Integer value) {
            addCriterion("rt_address >=", value, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressLessThan(Integer value) {
            addCriterion("rt_address <", value, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressLessThanOrEqualTo(Integer value) {
            addCriterion("rt_address <=", value, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressIn(List<Integer> values) {
            addCriterion("rt_address in", values, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressNotIn(List<Integer> values) {
            addCriterion("rt_address not in", values, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressBetween(Integer value1, Integer value2) {
            addCriterion("rt_address between", value1, value2, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtAddressNotBetween(Integer value1, Integer value2) {
            addCriterion("rt_address not between", value1, value2, "rtAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressIsNull() {
            addCriterion("rt_sub_address is null");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressIsNotNull() {
            addCriterion("rt_sub_address is not null");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressEqualTo(Integer value) {
            addCriterion("rt_sub_address =", value, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressNotEqualTo(Integer value) {
            addCriterion("rt_sub_address <>", value, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressGreaterThan(Integer value) {
            addCriterion("rt_sub_address >", value, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressGreaterThanOrEqualTo(Integer value) {
            addCriterion("rt_sub_address >=", value, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressLessThan(Integer value) {
            addCriterion("rt_sub_address <", value, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressLessThanOrEqualTo(Integer value) {
            addCriterion("rt_sub_address <=", value, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressIn(List<Integer> values) {
            addCriterion("rt_sub_address in", values, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressNotIn(List<Integer> values) {
            addCriterion("rt_sub_address not in", values, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressBetween(Integer value1, Integer value2) {
            addCriterion("rt_sub_address between", value1, value2, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andRtSubAddressNotBetween(Integer value1, Integer value2) {
            addCriterion("rt_sub_address not between", value1, value2, "rtSubAddress");
            return (Criteria) this;
        }

        public Criteria andFrameIsNull() {
            addCriterion("frame is null");
            return (Criteria) this;
        }

        public Criteria andFrameIsNotNull() {
            addCriterion("frame is not null");
            return (Criteria) this;
        }

        public Criteria andFrameEqualTo(Integer value) {
            addCriterion("frame =", value, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameNotEqualTo(Integer value) {
            addCriterion("frame <>", value, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameGreaterThan(Integer value) {
            addCriterion("frame >", value, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameGreaterThanOrEqualTo(Integer value) {
            addCriterion("frame >=", value, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameLessThan(Integer value) {
            addCriterion("frame <", value, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameLessThanOrEqualTo(Integer value) {
            addCriterion("frame <=", value, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameIn(List<Integer> values) {
            addCriterion("frame in", values, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameNotIn(List<Integer> values) {
            addCriterion("frame not in", values, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameBetween(Integer value1, Integer value2) {
            addCriterion("frame between", value1, value2, "frame");
            return (Criteria) this;
        }

        public Criteria andFrameNotBetween(Integer value1, Integer value2) {
            addCriterion("frame not between", value1, value2, "frame");
            return (Criteria) this;
        }

        public Criteria andDataLengthIsNull() {
            addCriterion("data_length is null");
            return (Criteria) this;
        }

        public Criteria andDataLengthIsNotNull() {
            addCriterion("data_length is not null");
            return (Criteria) this;
        }

        public Criteria andDataLengthEqualTo(Integer value) {
            addCriterion("data_length =", value, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthNotEqualTo(Integer value) {
            addCriterion("data_length <>", value, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthGreaterThan(Integer value) {
            addCriterion("data_length >", value, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthGreaterThanOrEqualTo(Integer value) {
            addCriterion("data_length >=", value, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthLessThan(Integer value) {
            addCriterion("data_length <", value, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthLessThanOrEqualTo(Integer value) {
            addCriterion("data_length <=", value, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthIn(List<Integer> values) {
            addCriterion("data_length in", values, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthNotIn(List<Integer> values) {
            addCriterion("data_length not in", values, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthBetween(Integer value1, Integer value2) {
            addCriterion("data_length between", value1, value2, "dataLength");
            return (Criteria) this;
        }

        public Criteria andDataLengthNotBetween(Integer value1, Integer value2) {
            addCriterion("data_length not between", value1, value2, "dataLength");
            return (Criteria) this;
        }

        public Criteria andFirstAddressIsNull() {
            addCriterion("first_address is null");
            return (Criteria) this;
        }

        public Criteria andFirstAddressIsNotNull() {
            addCriterion("first_address is not null");
            return (Criteria) this;
        }

        public Criteria andFirstAddressEqualTo(Integer value) {
            addCriterion("first_address =", value, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressNotEqualTo(Integer value) {
            addCriterion("first_address <>", value, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressGreaterThan(Integer value) {
            addCriterion("first_address >", value, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressGreaterThanOrEqualTo(Integer value) {
            addCriterion("first_address >=", value, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressLessThan(Integer value) {
            addCriterion("first_address <", value, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressLessThanOrEqualTo(Integer value) {
            addCriterion("first_address <=", value, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressIn(List<Integer> values) {
            addCriterion("first_address in", values, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressNotIn(List<Integer> values) {
            addCriterion("first_address not in", values, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressBetween(Integer value1, Integer value2) {
            addCriterion("first_address between", value1, value2, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andFirstAddressNotBetween(Integer value1, Integer value2) {
            addCriterion("first_address not between", value1, value2, "firstAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressIsNull() {
            addCriterion("end_address is null");
            return (Criteria) this;
        }

        public Criteria andEndAddressIsNotNull() {
            addCriterion("end_address is not null");
            return (Criteria) this;
        }

        public Criteria andEndAddressEqualTo(Integer value) {
            addCriterion("end_address =", value, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressNotEqualTo(Integer value) {
            addCriterion("end_address <>", value, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressGreaterThan(Integer value) {
            addCriterion("end_address >", value, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressGreaterThanOrEqualTo(Integer value) {
            addCriterion("end_address >=", value, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressLessThan(Integer value) {
            addCriterion("end_address <", value, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressLessThanOrEqualTo(Integer value) {
            addCriterion("end_address <=", value, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressIn(List<Integer> values) {
            addCriterion("end_address in", values, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressNotIn(List<Integer> values) {
            addCriterion("end_address not in", values, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressBetween(Integer value1, Integer value2) {
            addCriterion("end_address between", value1, value2, "endAddress");
            return (Criteria) this;
        }

        public Criteria andEndAddressNotBetween(Integer value1, Integer value2) {
            addCriterion("end_address not between", value1, value2, "endAddress");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}